﻿// For an introduction to the Blank template, see the following documentation:
// http://go.microsoft.com/fwlink/?LinkId=232509
(function () {

    WinJS.Binding.optimizeBindingReferences = true;

    var app = WinJS.Application;
    var activation = Windows.ApplicationModel.Activation;

    var canvas;
    var localSketch;

    app.onactivated = function(args) {
	    if (args.detail.kind === activation.ActivationKind.launch) {
		    if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
			    // TODO: This application has been newly launched. Initialize
			    // your application here.
		    } else {
			    // TODO: This application has been reactivated from suspension.
			    // Restore application state here.
		    }

		    args.setPromise(WinJS.UI.processAll());
	    }

	    canvas = document.getElementById("canvasRoot");
	    var uri = new Windows.Foundation.Uri('ms-appx:///sketch.pde');

	    Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).done(
		    function(data) {
			    Windows.Storage.FileIO.readTextAsync(data).done(
				    function(fileContent) {
					    //codeOutput.innerHTML = fileContent;
					    localSketch = Processing.compile(fileContent);
					    var sketch = new Processing(canvas, localSketch);
				    });
		    });
    };

    app.oncheckpoint = function (args) {
        // TODO: This application is about to be suspended. Save any state
        // that needs to persist across suspensions here. You might use the
        // WinJS.Application.sessionState object, which is automatically
        // saved and restored across suspension. If you need to complete an
        // asynchronous operation before your application is suspended, call
        // args.setPromise().
    };

    app.start();
})();
